/*************************************************************************

    SlkToken.h

*************************************************************************/

#ifndef _SLKTOKEN_C_H
#define _SLKTOKEN_C_H

#include "SlkConstants.h"

#define PRIVATE static
#define PUBLIC
#define INSTANCE_METHOD static

#undef  SELF
#define SELF    struct _peeker

typedef struct _peeker
{
    char   *scan_text;
    double  attribute;
    double  last_attribute;

    slk_size_t (*get) ( SELF * );
    slk_size_t (*peek) ( SELF *, int   level );

} peeker_t, SlkToken;

#define get_attribute(self)       (*self).attribute
#define get_last_attribute(self)  (*self).last_attribute
#define peek(self,a)              (*self).peek(self, a)
#define get(self)                 (*self).get(self)

PUBLIC
void
InitializePeeker ( peeker_t  *peeker,
                   char      *expression );

#endif

